package net.esj.basic.dao;

import java.io.Serializable;
import java.util.List;

import net.esj.basic.dao.querybuilder.QueryBuilder;
import net.esj.basic.utils.Pagination;

public interface QueryBuilderDao {

	 List queryListByQueryBuilder(QueryBuilder qb);

	List queryTopByQueryBuilder(QueryBuilder qb, int count);

	int queryCountByQueryBuilder(QueryBuilder qb);

	Pagination queryPageByQueryBuilder(Pagination page);
	
	Object queryFirst(QueryBuilder qb);
	
	QueryBuilder getQueryBuilder(Class clazz);
	
	Object queryMaxByQueryBuilder(QueryBuilder qb,String key);
	
	Long querySumByQueryBuilder(QueryBuilder qb,String key);
}
